const generateUUID = () => {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
    .replace(/[xy]/g, function (c) {
      const r = Math.random() * 16 | 0;
      const v = c === 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
    });
}

const generateFileNameWithUUID = (fileName: string): string => {
  const uuid = generateUUID();
  const lastDotIndex = fileName.lastIndexOf('.');
  if (lastDotIndex === -1) {
    return `${uuid}_${fileName}`;
  }
  const name = fileName.substring(0, lastDotIndex);
  const extension = fileName.substring(lastDotIndex);
  return `${name}_${uuid}${extension}`;
}

export {
  generateFileNameWithUUID,
  generateUUID
}
